# 2021年1月18日星期一 上午8:47 周考2
# 人工智能学院1906A
# 裴云鹏


# 实现手动选红球号码：（本题5分）
# 要求：示意效果如下图所示，有自动排重功能

xerror_prompt='输入有误，请重新输入！'


def input_value(xtype, xprompt, xerror_prompt=xerror_prompt):
    '''
    Common procedure to receive user's input.

    :param xtype: The expected type.
    :param xprompt: The prompt.
    :param xerror_prompt: The prompt when cannot parse user's input as the specified type
    :return: The very value user inputted.
    '''
    while True:
        xinput = input(xprompt).strip()
        try:
            xinput = xtype(xinput)
            if str == xtype and len(xinput) == 0:
                print('不能为空白，请重新输入。')
                continue
            return xinput
        except ValueError:
            print(xerror_prompt)
            continue

xselected_set = set()
xmax = 33
while True:
    if len(xselected_set) >= 6:
        break
    xchoice = input_value(int, '请输入你的1-33之间的红球号码：')
    if not(1 <= xchoice <= xmax):
        print('您只能在1-{}之间选择。'.format(xmax))
        continue
    if xchoice in xselected_set:
        print('你选择的红球号码重复，请重新输入')
        continue
    xselected_set.add(xchoice)

print('你本次所选择的红球是：[', end='')
xfirst = True
for a in sorted(xselected_set):
    if xfirst:
        xfirst = False
    else:
        print(', ', end='')
    print(a, end='')
print(']')
